SQLのCREATE TABLE
tableを定義する
SQLのCONSTRAINT句
SQLのDEFAULT句
/mrsekut-book-4798128023/090
#WIP
https://dev.mysql.com/doc/refman/5.6/ja/create-table.html
どういうcolumnを持つのかの列挙
どういう制約を持つのかを記述
例
code:sql
CREATE TABLE order (
order_id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) unsigned NOT NULL,
produc_id int(11) unsigned NOT NULL,
updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (order_id),
UNIQUE (user_id, product_id, user_id),
CONSTRAINT
FOREIGN KEY (user_id)
REFERENCES users (user_id)
ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT
FOREIGN KEY (product_id)
REFERENCES products (product_id)
ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
制約関連
SQLのCONSTRAINT句
各制約のページを参照mrsekut.icon
#??
DEFERRABLE
遅延制約
トランザクションの実行中は制約をオフにする
よくわからん
制約を施行するタイミングを制御する?
DML文が実行された時か、トランザクションが終了する時か
INITIALLY DEFERRED
/mrsekut-book-4798128023/091
INITIALLY IMMEDIATE
/mrsekut-book-4798128023/091
DML文ってなに